import axios from "axios"
import constants from "@/common/constants"
import cacheUtil from "@/utils/cacheUtil"
import router from "@/router"

const service= axios.create({
	baseURL:constants.HTTP_CONFIG.baseUrl,
	timeout:constants.HTTP_CONFIG.timeout,
})

//请求拦截
service.interceptors.request.use(
config =>{
	//从缓存去出token
	const userInfo = cacheUtil.getLocalStorage('userInfo');
	if (userInfo && userInfo.token) {
		//设置token
		config.headers.token =userInfo.token
	}
	return config
},error =>{
	console.log(error);
})

//响应拦截
service.interceptors.response.use(
response =>{
	const res = response.data
	if (res.code == 2) {
		router.replace('/')
	}
	return res
},error =>{
	console.log('我出错了');
	if (error && error.response) {
		switch (error.response.status){
			case 400:error.message='错误请求';break;
			case 401:error.message='未授权，请重新登录';break;
			case 403:error.message='拒绝访问';break;
			case 404:error.message='当前页面不存在，请检查访问链接';break;
			case 405:error.message='请求方法未允许';break;
			case 408:error.message='请求超时';break;
			case 500:error.message='服务器开小差了，请稍后再试';break;
			case 501:error.message='网路未实现';break;
			case 502:error.message='网路错误';break;
			case 503:error.message='服务不可用';break;
			case 504:error.message='网路超时';break;
			case 505:error.message='http版本不支持该请求';break;
			default:error.message = `链接错误${error.response.status}`
		}
	}
	if (error.message.includes('timeout')) {
		error.message='请求超时，请稍后再试'
	}
	return Promise.reject(error.message)
})

export default service